package gui_demo;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/*
    案例1：
        用户登录界面
*/

public class UsersLogin {
    public static void main(String[] args) {
        JFrame jf = new JFrame();// 创建窗口对象
        jf.setSize(400, 300);// 设置宽高（单位是px像素）
        // 基本设置
        jf.setTitle("用户登录");// 1. 设置标题
        jf.setLocationRelativeTo(null);// 2.居中显示
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 3.关闭窗口时，退出程序 JFrame.EXIT_ON_CLOSE / 3
        jf.setAlwaysOnTop(true);// 4.置顶
        jf.setLayout(null);// 取消页面的默认布局


        // 基本组件
        // 用户名文本 JLabel(文本标签)
        JLabel usernameJLabel = new JLabel("用户名：");
        usernameJLabel.setBounds(50, 50, 50, 20);
        jf.add(usernameJLabel);
        // 密码文本 JLabel
        JLabel passwordJLabel = new JLabel("密码：");
        passwordJLabel.setBounds(50, 100, 50, 20);
        jf.add(passwordJLabel);
        // 用户名输入框 JTextField(文本框)
        JTextField usernameJTextField = new JTextField();
        usernameJTextField.setBounds(150, 50, 180, 20);
        jf.add(usernameJTextField);
        // 密码输入框 JPasswordField(密码框)
        JPasswordField passwordTextField = new JPasswordField();
        passwordTextField.setBounds(150, 100, 180, 20);
        jf.add(passwordTextField);
        // 登录按钮 JButton(按钮)
        JButton loginJButton = new JButton("登录");
        loginJButton.setBounds(50, 200, 280, 20);
        jf.add(loginJButton);

        // 定义用户名和账号密码
        String username = "java001";
        String password = "123456";
        // 添加点击事件
        loginJButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 通过输入框对象，获取用户输入的数据
                String uname = usernameJTextField.getText().trim();
                String psw = passwordTextField.getText().trim();
                // 判断用户名长度
                if(uname.length()<6 || uname.length()>12){
                    JOptionPane.showMessageDialog(jf, "用户名的长度为6—12为，请重新输入"); // 弹窗提示
                    usernameJTextField.setText(""); // 清空文本框 -> 将文本框内容设置为空的字符串
                    return;
                }
                // 判断密码长度
                if(psw.length()<6 || psw.length()>12){
                    JOptionPane.showMessageDialog(jf, "密码的长度为6—12为，请重新输入"); // 弹窗提示
                    passwordTextField.setText(""); // 清空文本框 -> 将文本框内容设置为空的字符串
                    return;
                }
                // 如果长度都合法，再判断内容，注意比较字符串内容，使用equals
                if (uname.equals(username) && psw.equals(password)) {
                    JOptionPane.showMessageDialog(jf,"登录成功！");
                    usernameJTextField.setText(""); //清空
                    passwordTextField.setText(""); //清空
                }else {
                    JOptionPane.showMessageDialog(jf,"用户名或密码错误，登录失败");
                }
            }
        });
        // 显示窗口，一般放在最后
        jf.setVisible(true);
    }
}
